// pages/onlineStore/onlineStore.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseUrl:'',//全局连接地址
    userId:"",//用户id
    productDetailList:[],//精选商品列表(截3个)
    productDetailList1:[],//热门推荐商品列表(截3个)
    pageNum:1,//页码
    dataList:[],//商品列表(所有)
    totalPageCount:0, //总页数 
    isLoading: false, //节流阀标识
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const app = getApp();
    const baseUrl=app.globalConfig.baseUrl //获取本地连接地址
    const userId=app.globalData.userInfo.userId
    const token = wx.getStorageSync('token');
    this.setData({
      userId:app.globalData.userInfo.userId,
      baseUrl:app.globalConfig.baseUrl,
    });
    wx.request({
      url: baseUrl+'/product/productDetail/list',
      method:'GET',
      header:{
        'Authorization': 'Bearer\u0020' + token
      },
      data:{
        pageNum: 1,
        pageSize: 3
      },
      success:(res)=>{
        // 遍历商品列表数据
        const newProductDetailList = res.data.rows.map((product) => {
          // 假设价格字段名为price，使用toFixed方法保留两位小数
          product.productPrice = parseFloat(product.productPrice).toFixed(2);
          return product;
        });
        this.setData({
          productDetailList:newProductDetailList
        })
      }
    })
    wx.request({
      url: baseUrl+'/product/productDetail/list',
      method:'GET',
      header:{
        'Authorization': 'Bearer\u0020' + token
      },
      data:{
        pageNum: 1,
        pageSize: 3,
        trendingRecommendations:0,
      },
      success:(res)=>{
        // 遍历商品列表数据
        const newProductDetailList = res.data.rows.map((product) => {
          // 假设价格字段名为price，使用toFixed方法保留两位小数
          product.productPrice = parseFloat(product.productPrice).toFixed(2);
          return product;
        });
        this.setData({
          productDetailList1:newProductDetailList
        })
      }
    })
    this.getData()
  },
  //封装方法
  getData(){
    const baseUrl=this.data.baseUrl //获取本地连接地址
    const token = wx.getStorageSync('token');
    //节流阀开始
    this.setData({
      isLoading: true
    })
    //加载时显示loading框
    wx.showLoading({
      title: '数据正在加载',
    })
    wx.request({
      url: baseUrl+'/product/productDetail/list',
      header:{
        'Authorization': 'Bearer\u0020' + token
      },
      data:{
        pageNum:this.data.pageNum,
        pageSize:6,
      },
      method:'GET',
      success:(res)=>{
        // 遍历商品列表数据
        const newProductDetailList = res.data.rows.map((product) => {
          // 假设价格字段名为price，使用toFixed方法保留两位小数
          product.productPrice = parseFloat(product.productPrice).toFixed(2);
          return product;
        });
        //把请求得到的数据【追加】到data中的articleList变量
        this.setData({
          dataList:this.data.dataList.concat(newProductDetailList),
          totalPageCount:Math.ceil(res.data.total/6)
        })
      },
      complete:(res)=>{
        //加载数据完成后关闭loading框
        wx.hideLoading()
        //关闭下拉刷新
        wx.stopPullDownRefresh()
        //数据加载完成关闭节流阀
        this.setData({
          isLoading: false
        })
      },
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if (!wx.getStorageSync('token')) {
      //没有登录跳转到登录页面
      wx.redirectTo({
        url: '/packagePersonalCenter/pages/logon/logon?backUrl=/pages/personalCenter/personalCenter',
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      pageNum:1,//页码
      dataList:[],
      totalPageCount:0 //总页数 
    })
    this.getData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  //判断节流阀
    if(this.data.isLoading){
      return;
    }
   //没有更多数据，提示
   if(this.data.pageNum>=this.data.totalPageCount){
     wx.showToast({
       title: '没有更多数据了！',
       icon:'none'
     })
     return;
   }
   //当上提触底的时候，加载当前页+1（下一页）的数据
   this.setData({
     pageNum:this.data.pageNum + 1
   })
   this.getData()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})